Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Ruby on Rails</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Ruby_on_Rails"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Ruby_on_Rails rootpage-Ruby_on_Rails skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Ruby on Rails</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">

<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Ruby on Rails
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td colspan="2" class="notheme" style="text-align:center; background-color:#f8f9fa;">
</td></tr>
<tr>
<td colspan="2" style="text-align:center;"><span typeof="mw:File"></span><br> Rails Standard-Seite
</td></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td>Rails-Core-Team<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><b>Erscheinungsjahr</b>
</td>
<td><span class="wikidata-content">25. Juli 2004</span>
</td></tr>
<tr>
<td><b>Aktuelle&nbsp;<a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">8.1.1<sup id="cite_ref-_f1c880e835343618_2-0" class="reference"><a href="#cite_note-_f1c880e835343618-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">28. Oktober 2025</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><a href="Plattformunabh%C3%A4ngigkeit" title="Plattformunabhängigkeit">plattformübergreifend</a>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmier­sprache</a></b>
</td>
<td><span class="wikidata-content"><a href="Ruby_(Programmiersprache)" title="Ruby (Programmiersprache)">Ruby</a><sup id="cite_ref-_7dc272da337eccf5_3-0" class="reference"><a href="#cite_note-_7dc272da337eccf5-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-_f83cfd94ded50187_4-0" class="reference"><a href="#cite_note-_f83cfd94ded50187-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Webframework" title="Webframework">Webframework</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><span class="wikidata-content"><a href="MIT-Lizenz" title="MIT-Lizenz">MIT-Lizenz</a><sup id="cite_ref-_b95d89ef994fa36d_5-0" class="reference"><a href="#cite_note-_b95d89ef994fa36d-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://rubyonrails.org/">rubyonrails.org</a>
</td></tr></tbody></table>
<p><b>Ruby on Rails</b>, kurz <b>Rails</b>, früher auch oft kurz <b>RoR</b>, ist ein ursprünglich von <a href="David_Heinemeier_Hansson" title="David Heinemeier Hansson">David Heinemeier Hansson</a> in der Programmiersprache <a href="Ruby_(Programmiersprache)" title="Ruby (Programmiersprache)">Ruby</a> geschriebenes und <a href="Quelloffen" class="mw-redirect" title="Quelloffen">quelloffenes</a> <a href="Webframework" title="Webframework">Webframework</a>. Es wurde im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt.
</p><p>Rails ist geprägt von den Prinzipien „<a href="Don%E2%80%99t_repeat_yourself" title="Don’t repeat yourself">don’t repeat yourself</a>“ (DRY) und „<a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention vor Konfiguration</a>“: Das heißt, statt einer variablen <a href="Konfiguration_(Computer)" title="Konfiguration (Computer)">Konfiguration</a> sind Konventionen für die Namensgebung von Objekten einzuhalten, aus denen sich deren Zusammenspiel automatisch ergibt. Diese Funktionen ermöglichen eine rasche Umsetzung von Anforderungen.
</p>

<div class="mw-heading mw-heading2"><h2 id="Konzept">Konzept</h2></div>
<p>Rails folgt der „<a href="Model_View_Controller" title="Model View Controller">Model View Controller</a>“-Architektur (MVC) und besteht aus fünf Modulen:
</p>
<dl><dt>Active Support</dt>
<dd>Ruby-Erweiterungen von Rails</dd>
<dt><a href="Active_Record" title="Active Record">Active Record</a></dt>
<dd>Objektabstraktionsschicht basierend auf dem <a href="Objektrelationale_Abbildung" title="Objektrelationale Abbildung">objekt-relationalen Muster oder Model (ORM)</a> (das „M“ aus MVC) von <a href="Martin_Fowler" title="Martin Fowler">Martin Fowler</a></dd>
<dt>Action Pack</dt>
<dd>Request-Behandlung und Response-Ausgabe. Die Anfragen werden durch eine öffentliche Methode des Controllers (Action Controller, das „C“ aus MVC) behandelt. Die Ausgabe wird mittels eines <a href="Template-Engine" title="Template-Engine">Templates</a> (Action View, das „V“ aus MVC) vorgenommen.</dd>
<dt>Action Mailer</dt>
<dd><a href="E-Mail" title="E-Mail">E-Mail</a>-Versand und -Empfang</dd>
<dt>Active Resource</dt>
<dd>Mit Version 2.0 wurde Action <a href="Webservice" title="Webservice">Webservice</a> durch Active Resource ersetzt: Web-Service-Programmierung, Unterstützung für <a href="XML-RPC" title="XML-RPC">XML-RPC</a> und <a href="Representational_State_Transfer" title="Representational State Transfer">REST</a>.</dd></dl>
<p>Rails integriert die <a href="JavaScript" title="JavaScript">JavaScript</a>-<a href="Framework" title="Framework">Frameworks</a> <a href="Prototype_(Klassenbibliothek)" title="Prototype (Klassenbibliothek)">Prototype</a> und <a href="Script.aculo.us" title="Script.aculo.us">Script.aculo.us</a> und bietet so Methoden zur einfachen Entwicklung von <a href="Ajax_(Programmierung)" title="Ajax (Programmierung)">Ajax</a>-Applikationen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Version_1.0">Version 1.0</h3></div>
<p>Ursprünglich wurde Rails für die webbasierte <a href="Projektmanagementsoftware" class="mw-redirect" title="Projektmanagementsoftware">Projektmanagementsoftware</a> <i>Basecamp</i> entwickelt, dann jedoch daraus extrahiert und im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt. Die Version 1.0 wurde am 13. Dezember 2005 fertiggestellt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_1.1">Version 1.1</h3></div>
<p>Schon am 28. März 2006 folgte die Version 1.1. Neu waren vor allem
</p>
<ul><li>RJS (<i>Ruby on Rails JavaScript Templates</i>), das es ermöglichte, Templates für JavaScript zu erstellen, sowie</li>
<li>Verbesserungen an ActiveRecord, die es unter anderem erlauben, polymorphe Assoziationen zu benutzen.</li>
<li>Außerdem wurde die Performance verbessert.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Version_1.2">Version 1.2</h3></div>
<p>Am 19. Januar 2007 erschien die Version 1.2. Highlights der Version 1.2 waren vor allem
</p>
<ul><li><a href="Representational_State_Transfer" title="Representational State Transfer">REST</a>,</li>
<li>Routing nach <a href="Multipurpose_Internet_Mail_Extensions" title="Multipurpose Internet Mail Extensions">MIME</a>-Type und</li>
<li>ein Interface zur sicheren Behandlung von <a href="UTF-8" title="UTF-8">UTF-8</a>-Strings.</li></ul>
<p>Außerdem wurde eine Handvoll von Methoden als <a href="Deprecated" class="mw-redirect" title="Deprecated">deprecated</a> gekennzeichnet. Diese gaben daraufhin Warnungen aus und es wurde angekündigt, dass sie aus dem nächsten Major-Release – der Version 2.0 – aus Rails entfernt werden.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_2.0">Version 2.0</h3></div>
<p>Am 7. Dezember 2007 erschien nach knapp einem Jahr Entwicklungsarbeit Rails 2.0.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Sie brachte mehrere hundert Neuerungen mit sich und vollzog die Umstellung von <a href="SOAP" title="SOAP">SOAP</a> zu <a href="Representational_State_Transfer" title="Representational State Transfer">REST</a> als <i>Plattform für Web Services</i>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_2.1">Version 2.1</h3></div>
<p>Am 1. Juni 2008 erschien die Version 2.1, die einige Verbesserungen und Neuerungen brachte:
</p>
<ul><li>Behandlung von Zeitzonen optimiert</li>
<li>Erlaubt das Definieren der Anwendung von Abhängigkeiten zu <a href="RubyGems" title="RubyGems">RubyGems</a> und kann Änderungen an Models verfolgen, wodurch auch die Datenbankzugriffe effizienter werden.</li>
<li><i>Named-Scopes</i> eingeführt, mit denen Queries mit häufig benötigten Bedingungen definiert werden können.</li>
<li><i>Migrations</i> wurden dahingehend geändert, dass diese nicht mehr durchnummeriert werden, sondern einen <a href="Zeitstempel" title="Zeitstempel">Zeitstempel</a> erhalten. Die frühere Handhabung führte beim Entwickeln in Teams zu Problemen, wenn gleichzeitig zwei Entwickler eine neue Migration erstellten, die dann die gleiche Nummer erhielt.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Version_2.2">Version 2.2</h3></div>
<p>Die Version 2.2 erschien am 21. November 2008. Sie brachte unter anderem folgendes:
</p>
<ul><li>Internationalisierung: Durch Integration des l18n-<a href="RubyGems" title="RubyGems">Gems</a> steht nun eine standardmäßige API für die Internationalisierung zur Verfügung.</li>
<li>Rails ist ab dieser Version kompatibel zu Ruby 1.9 und <a href="JRuby" title="JRuby">JRuby</a></li>
<li>Unterstützt <code>etag</code> und <code>last-modified</code> in HTTP-Headern. Seiten, die sich seit dem letzten Besuch nicht geändert haben, müssen so nicht erneut gesendet werden.</li>
<li><a href="Threadsicherheit" title="Threadsicherheit">Threadsicherheit</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Version_2.3">Version 2.3</h3></div>
<p>Die Version 2.3 erschien am 15. März 2009. Sie umfasste neben vielen kleineren Verbesserungen sogenannte <i>Templates</i>. Diese dienen dazu, immer wieder benötigte Konfigurationen direkt mit der Erstellung der Applikation generieren zu lassen. Mit den Engines wurde es ermöglicht, Applikationen wie Plugins in andere Rails Applikationen einzubetten. <i>Nested forms</i> erlauben es nun komfortabel, definierte Abhängigkeiten zwischen Models im View abzubilden. Rails basiert ab dieser Version auf der <a href="Middleware" title="Middleware">Middleware</a> <i>Rack</i> und erlaubt daher auch den Zugriff direkt auf diese. Mit <i>Rails Metal</i> wurde es möglich, Applikationsteile die sehr häufig aufgerufen werden und nur simple Funktionalität bereitstellen, stark zu beschleunigen. Dabei verzichtet der Entwickler jedoch auf den meisten Komfort, den Rails sonst bieten würde.
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_3.0">Version 3.0</h3></div>
<p>Am 29. August 2010 wurde Rails 3.0 veröffentlicht.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Rails wurde in dieser Version mit dem zweiten großen Ruby-Webframework <i>Merb</i> zusammengeführt.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Zudem wurde Rails modularer gestaltet. Dies soll es einerseits erleichtern, Teile von Rails (bspw. ActiveRecord) außerhalb von Rails einzusetzen. Zugleich ist es nun einfacher möglich, auf Wunsch bestimmte Teile von Rails durch andere <a href="Programmbibliothek" title="Programmbibliothek">Bibliotheken</a> zu ersetzen. Des Weiteren wurde die Javascript-Unterstützung auf <a href="Unobtrusive_JavaScript" title="Unobtrusive JavaScript">Unobtrusive JavaScript</a> umgestellt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_3.1">Version 3.1</h3></div>
<p>Ein erstes Update von Rails 3 wurde am 31. August 2011 veröffentlicht.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> In dieser Version wurde die <i>Asset Pipeline</i> eingeführt, mit der alle CSS- und Javascript-Dateien vor der Auslieferung in je eine Datei zusammengefügt und komprimiert werden. Dies soll die Geschwindigkeit verbessern.
Auf der Front-End-Seite kommen seit 3.1 <i><a href="Sass_(Stylesheet-Sprache)" title="Sass (Stylesheet-Sprache)">Sass</a></i> für die Entwicklung von <a href="Stylesheet" class="mw-redirect" title="Stylesheet">Stylesheets</a> und <i><a href="CoffeeScript" title="CoffeeScript">CoffeeScript</a></i> als <a href="JavaScript" title="JavaScript">JavaScript</a>-Präprozessor zum Einsatz. Die Standard-Bibliothek für JavaScript ist seither nicht mehr <a href="Prototype_(Klassenbibliothek)" title="Prototype (Klassenbibliothek)">Prototype</a>, sondern <a href="JQuery" title="JQuery">jQuery</a>.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_3.2">Version 3.2</h3></div>
<p>Am 20. Januar 2012 wurde Version 3.2 veröffentlicht.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Darin wurde unter anderem die Performance des Entwicklungsmodus verbessert.
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_4.0">Version 4.0</h3></div>
<p>Am 25. Juni 2013 wurde Version 4.0 veröffentlicht.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_4.1">Version 4.1</h3></div>
<p>Am 8. April 2014 wurde Version 4.1.0 veröffentlicht.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_4.2">Version 4.2</h3></div>
<p>Am 19. Dezember 2014 wurde Version 4.2.0 veröffentlicht.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_5.0">Version 5.0</h3></div>
<p>Am 30. Juni 2016 wurde Version 5.0 veröffentlicht. Wesentliche Neuerungen sind die Integrationen von <i>Action Cable</i>, einer <a href="WebSocket" title="WebSocket">WebSocket</a>-Implementierung in Ruby, Generatoren für schlanke Web-APIs und eines eigenen Test-Frameworks namens <i>Test Runner</i>.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_5.1">Version 5.1</h3></div>
<p>Am 27. April 2017 wurde Version 5.1 veröffentlicht. Wesentliche Neuerungen sind die Unterstützung von <i>Yarn</i>, einem Paketverwalter für Javascript-Abhängigkeiten und <i><a href="Webpack" title="Webpack">Webpack</a></i>, einem <i>Asset-Bundler</i> für JavaScript. Weiter wurden die Methoden zum Generieren von Web-Formularen (<i>form_for</i>, <i>form_tag</i>) vereinheitlicht (zu <i>form_with</i>), Tests mittels Webbrowsern (<i>Capybara</i>) integriert und JQuery als zwingende Abhängigkeit entfernt.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_5.2">Version 5.2</h3></div>
<p>Am 9. April 2018 wurde Version 5.2.0 veröffentlicht.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_6.0">Version 6.0</h3></div>
<p>Am 15. August 2019 wurde Version 6.0.0 veröffentlicht. Neuerungen in dieser Version sind Webpack als Standard für JavaScript, Action Mailbox, Action Text, paralleles Testen, die Unterstützung multipler Datenbanken und ein neuer Autoloader.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Version_6.1">Version 6.1</h3></div>
<p>Am 9. Dezember 2020 wurde Version 6.1.0 veröffentlicht. Wesentliche Neuerungen sind die Unterstützung von <a href="Denormalisierung#Fragmentierung" title="Denormalisierung">Horizontaler Fragmentierung</a> sowie die Möglichkeit die Datenbankverbindung individuell zu wechseln.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Philosophie">Philosophie</h2></div>
<p>Als Grundprinzipien von Rails gelten <i>„Don’t repeat yourself“</i> (<i>Wiederhole dich nicht</i>) und <i>„Convention over configuration“</i> (<i>Konvention vor Konfiguration</i>).
</p>
<dl><dt>„Don’t repeat yourself“</dt></dl>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→&nbsp;</span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Don%E2%80%99t_repeat_yourself" title="Don’t repeat yourself">Don’t repeat yourself</a></i></div>
<dl><dd>Jede Information sollte nur ein einziges Mal vorhanden sein. So reicht es in Rails beispielsweise dank ActiveRecord, die Spalten einer Tabelle nur in der Datenbank festzulegen. Anstatt diese Informationen noch ein zweites Mal im Quellcode oder einer Konfigurationsdatei kodiert zu verlangen, liest ActiveRecord diese Informationen direkt aus der Datenbank. Rails erstellt für das Model automatisch Getter- und Setter-Methoden, damit die Daten einfach in die Datenbank geschrieben bzw. von dort gelesen werden können. Dieses Verfahren hat auch den Vorteil, dass die Informationen nicht inkonsistent werden können, falls beispielsweise die Datenbank geändert, dies aber für die Konfigurationsdatei vergessen wurde.</dd></dl>
<dl><dt>„Convention over Configuration“</dt></dl>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→&nbsp;</span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention vor Konfiguration</a></i></div>
<dl><dd>Rails erwartet sinnvolle Standardwerte. Erwartet wird etwa, dass der Primärschlüssel einer Tabelle vom Typ <code>Integer</code> ist und <code>ID</code> heißt, dass ein Modell mit dem Namen <code>Customer</code> in der Datei <code>#{Rails.root}/app/models/customer.rb</code> gespeichert ist und die zugehörige Tabelle <code>customers</code> heißt. Ist dieses Modell über eine 1:N-Beziehung mit einem Modell <code>Contract</code> verknüpft, so wird erwartet, dass in der Tabelle <code>contracts</code> ein Fremdschlüssel mit dem Namen <code>customer_id</code> vorhanden ist. Wenn diese Standardwerte nicht zutreffen, können sie einfach umkonfiguriert werden, in den meisten Fällen bleibt der Entwickler jedoch von den ausführlichen Konfigurationsmöglichkeiten verschont.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Scaffolding">Scaffolding</h2></div>
<p>Mittels des eingebauten <a href="Webframework#Scaffolding" title="Webframework">Scaffolding</a> (deutsch etwa: Gerüstbau) ist es möglich, Web-Anwendungen <i>on the fly</i> zu entwickeln. Wenn in der Datenbank etwa ein Feld hinzugefügt wird, erscheint es auch sofort in der entsprechenden View/New/Edit-Ansicht. Die Möglichkeit des sofortigen Visualisierens eines Datenbankfeldes und das Verknüpfen diverser Datenbankoperationen mit ebendiesem Textfeld wird oftmals auch mit dem Begriff <a href="CRUD" title="CRUD">CRUD</a> (<b>C</b>reate, <b>R</b>ead, <b>U</b>pdate, <b>D</b>elete) oder CRUD-Framework bezeichnet. Scaffolding ist vor allem für <a href="Prototyping_(Softwareentwicklung)" title="Prototyping (Softwareentwicklung)">Prototyping</a> gedacht und wird in produktiven Anwendungen fast immer mit eigenem Code ergänzt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Webserver-Unterstützung"><span id="Webserver-Unterst.C3.BCtzung"></span>Webserver-Unterstützung</h2></div>
<p>Zum Entwickeln und Testen bietet sich der zum Ruby-Paket gehörende <a href="Webserver" title="Webserver">Webserver</a> <a href="WEBrick" title="WEBrick">WEBrick</a> als Applikationsserver an. Für den produktiven Einsatz können z.&nbsp;B. <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache</a> oder <a href="Lighttpd" title="Lighttpd">Lighttpd</a> mit <a href="FastCGI" title="FastCGI">FastCGI</a> genutzt werden, aber auch jeder andere Webserver mit <a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a>- oder FastCGI-Unterstützung funktioniert. Eine weitere Möglichkeit stellt der größtenteils in Ruby geschriebene Webserver <a href="Mongrel_(Webserver)" title="Mongrel (Webserver)">Mongrel</a> dar, der im Gegensatz zu WEBrick für den Einsatz in einer <a href="Systemumgebung" title="Systemumgebung">Systemumgebung</a> geeignet ist. Von dem Apache-Modul <a href="Mod_ruby" title="Mod ruby">mod ruby</a> wird in der Regel abgeraten, stattdessen wird <a href="Phusion_Passenger" title="Phusion Passenger">Phusion Passenger</a> (auch als mod_rails bezeichnet) empfohlen. Dieses ist nicht nur besonders schnell und wartungsarm, es ist hierbei im Gegensatz zu allen anderen genannten Servern auch nicht nötig, den Webserver neu zu starten, wenn eine Applikation erneut aktiviert wird. Dies ist insbesondere beim <a href="Shared_Hosting" class="mw-redirect" title="Shared Hosting">Shared Hosting</a> wichtig.
</p>
<div class="mw-heading mw-heading2"><h2 id="Schichten">Schichten</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Model">Model</h3></div>
<p>Das <a href="Front-End_und_Back-End" class="mw-redirect" title="Front-End und Back-End">Back-end</a> einer Rails-Applikation bildet im Normalfall eine <a href="Relationale_Datenbank" title="Relationale Datenbank">relationale Datenbank</a>. Der Zugriff auf diese wird mit Hilfe von ActiveRecord hergestellt. Dabei handelt es sich um eine <a href="Objektrelationale_Abbildung" title="Objektrelationale Abbildung">ORM-Schicht</a>, welche eine Klasse auf eine Tabelle und ein Attribut auf eine Spalte abbildet. Ein Datensatz in einer solchen Tabelle entspricht genau einer Instanz. Derzeit werden eine Reihe bekannter Datenbanken wie <a href="SQLite" title="SQLite">SQLite</a>, <a href="Db2" title="Db2">Db2</a>, <a href="Informix" title="Informix">Informix</a>, <a href="MySQL" title="MySQL">MySQL</a>, <a href="Oracle_(Datenbanksystem)" title="Oracle (Datenbanksystem)">Oracle</a>, <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a>, <a href="MongoDB" title="MongoDB">MongoDB</a>, <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> und <a href="Sybase" title="Sybase">Sybase</a> unterstützt.
</p><p>Weiterhin besteht die Möglichkeit, ein anderes Format zu verwenden (z.&nbsp;B. XML-Dateien) oder vollständig auf ein Backend zu verzichten. Dank dem in Rails 3.0 eingeführten Plugin-API kann man die ORM-Bibliothek frei wählen, sodass neben ActiveRecord unter anderem auch Sequel und Datamapper, welche heute schon von vielen Merb-Anwendungen genutzt werden, zur Verfügung stehen.
</p>
<div class="mw-heading mw-heading3"><h3 id="Controller">Controller</h3></div>
<p>Die Steuerungsschicht einer Rails-Applikation wird mithilfe der ActionController-Klasse hergestellt. Diese ist Bestandteil der ActionPack-Bibliothek. Ein Controller kapselt eine bestimmte <a href="Gesch%C3%A4ftslogik" title="Geschäftslogik">Geschäftslogik</a> und bietet Schnittstellen, um mit dieser kontrolliert zu interagieren. Diese Schnittstellen werden Actions genannt. Ein üblicher Rails-Request (z.&nbsp;B. <a href="Uniform_Resource_Locator" title="Uniform Resource Locator">URL</a>: <code>//servername.net/controller/action</code>) enthält den Namen des anzusprechenden Controllers. Dieser ist äquivalent zu dem Klassennamen. Weiterhin wird eine spezielle Action aufgerufen, diese wird innerhalb der Controller-Klasse als Methode dargestellt. Über den eingebauten Routing-Mechanismus besteht jedoch die Möglichkeit, einen solchen Rails-Request nach den eigenen Bedürfnissen anzupassen.
</p>
<div class="mw-heading mw-heading3"><h3 id="View">View</h3></div>
<p>Für die Präsentationsschicht ist die Klasse ActionView zuständig. Diese ist ebenfalls Bestandteil der ActionPack-Bibliothek. Folgende Ausgabeformate werden zurzeit von Rails unterstützt:
</p>
<ul><li><a href="Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a></li>
<li><a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> – z.&nbsp;B. für <a href="Extensible_Hypertext_Markup_Language" title="Extensible Hypertext Markup Language">XHTML</a> und <a href="Webservice" title="Webservice">Web Services</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a> – RJS-Templates</li>
<li>Binärdaten</li></ul>
<p>Zusätzlich werden die folgenden Templatesysteme angeboten:
</p>
<ul><li><a href="ERuby" title="ERuby">ERB</a> für (X)HTML und JavaScript</li>
<li>Builder für XML</li>
<li><a href="Haml" title="Haml">Haml</a></li>
<li><a href="Sass_(Stylesheet-Sprache)" title="Sass (Stylesheet-Sprache)">Sass</a></li>
<li><a href="CoffeeScript" title="CoffeeScript">CoffeeScript</a></li></ul>
<p>Weiterhin besteht die Möglichkeit den <a href="Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>-Header selbst zu manipulieren und so andere Formate an den Client zu senden.
</p><p><b>Middleware Rack</b>
</p><p>Merb, <a href="Sinatra_(Software)" title="Sinatra (Software)">Sinatra</a>, Ramaze und <a href="Camping_(Microframework)" title="Camping (Microframework)">Camping</a> sind wie Rails auch Ruby-Frameworks, die die <a href="Middleware" title="Middleware">Middleware</a> <a href="Rack_(Webserver-Interface)" title="Rack (Webserver-Interface)">Rack</a> benutzen und somit auch vermischt werden können. Ab Rails-Version 3 sind Rails und Merb fusioniert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Denny Carl: <i>Praxiswissen Ruby on Rails</i>, 2007</li></ul>
<ul><li>Hussein Morsy und Tanja Otto: <i>Ruby on Rails 3.1</i>, Galileo Computing, ²2011, ISBN 978-3-8362-1490-2</li></ul>
<ul><li>Rob Orsini: <i>Rails Kochbuch</i>, 2007</li></ul>
<ul><li>Sam Ruby, <a href="Dave_Thomas_(Programmierer)" title="Dave Thomas (Programmierer)">David Thomas</a> und <a href="David_Heinemeier_Hansson" title="David Heinemeier Hansson">David Heinemeier Hansson</a>: <i>Agile Web Development with Rails 4</i>, O'Reilly, 4. Auflage 2013, ISBN 1-9377-8556-4<br>(Deutsche Übersetzung der 1. Auflage: <i>Agile Webentwicklung mit Rails</i>, 2006. ISBN 3-446-40486-4)</li></ul>
<ul><li>Stefan Tennigkeit, Michael Voigt: <i>Ruby on Rails 3: Mit DataMapper, I18N &amp; L10N und Volltextsuche mit Sphinx</i>, entwickler.press, 1. Auflage 2010, ISBN 978-3-86802-026-7</li></ul>
<ul><li>Stefan Wintermeyer: <i>Ruby on Rails 3.2</i>, Addison-Wesley, 2012, ISBN 978-3-82732-989-9 (<a rel="nofollow" class="external text" href="https://ruby-auf-schienen.de/3.2/">Online-Version</a>)</li></ul>
<ul><li>Ralf Wirdemann und Thomas Baustert: <i>Rapid Web Development mit Ruby on Rails</i>, Hanser, ³2008, ISBN 3-4464-1498-3</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noresize noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Commons"></span></span></div><b><span class=""><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Ruby_on_Rails?uselang=de"><span lang="en">Commons</span>: Ruby on Rails</a></span></b>&nbsp;– Sammlung von Bildern, Videos und Audiodateien</div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wikibooks"></span></span></div><b><a href="https://de.wikibooks.org/wiki/Websiteentwicklung:_Ruby_on_Rails" class="extiw external" title="b:Websiteentwicklung: Ruby on Rails">Wikibooks: Websiteentwicklung: Ruby on Rails</a></b>&nbsp;– Lern- und Lehrmaterialien</div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wikibooks"></span></span></div><b><a href="https://de.wikibooks.org/wiki/Ruby_on_Rails" class="extiw external" title="b:Ruby on Rails">Wikibooks: Tutorial und Nachschlagewerk</a></b>&nbsp;– Lern- und Lehrmaterialien</div>
<ul><li><a rel="nofollow" class="external text" href="https://rubyonrails.org/">Offizielle Website</a> (englisch)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */


.mw-parser-output .webarchiv-memento a{color:inherit}


/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://archive.today/20121205052757/http://www.rubyonrails.org/core">rubyonrails.org/core</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> des <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.rubyonrails.org%2Fcore">Originals</a></span> vom 5. Dezember 2012 im Webarchiv <i><a href="Archive.today" title="Archive.today">archive.today</a></i>) <small class="archiv-bot"><span class="wp_boppel noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"><span title="i"></span></span></span>&nbsp;<b>Info:</b> Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</small><span style="display:none"><a rel="nofollow" class="external text" href="http://IABotmemento.invalid/http://www.rubyonrails.org/core">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="http://www.rubyonrails.org/core">@2</a></span><span style="display:none">Vorlage:Webachiv/IABot/www.rubyonrails.org</span> - Ruby-Core-Team</span>
</li>
<li id="cite_note-_f1c880e835343618-2"><span class="mw-cite-backlink"><a href="#cite_ref-_f1c880e835343618_2-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/rails/rails/releases/tag/v8.1.1"><cite style="font-style:italic"><span lang="en">Release 8.1.1</span></cite>.</a> 28.&nbsp;Oktober 2025 (abgerufen am 29.&nbsp;Oktober 2025).</span>
</li>
<li id="cite_note-_7dc272da337eccf5-3"><span class="mw-cite-backlink"><a href="#cite_ref-_7dc272da337eccf5_3-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/rails/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The rails Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 3.&nbsp;September 2018).</span>
</li>
<li id="cite_note-_f83cfd94ded50187-4"><span class="mw-cite-backlink"><a href="#cite_ref-_f83cfd94ded50187_4-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv"><cite style="font-style:italic">github.com</cite>.</a> 6.&nbsp;Juli 2025.</span>
</li>
<li id="cite_note-_b95d89ef994fa36d-5"><span class="mw-cite-backlink"><a href="#cite_ref-_b95d89ef994fa36d_5-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/rails/rails/blob/master/README.md"><cite style="font-style:italic">github.com</cite>.</a> (abgerufen am 6.&nbsp;August 2017): „<span lang="en">Ruby on Rails is released under the MIT License.</span>“</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100805084229/http://weblog.rubyonrails.org/2006/3/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things"><i>Rails 1.1: RJS, Active Record++, respond_to, integration tests, and 500 other things!</i></a> Archiviert vom <span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fweblog.rubyonrails.org%2F2006%2F3%2F28%2Frails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things">Original</a></span> am <span style="white-space:nowrap;">5.&nbsp;August 2010</span><span>;</span><span class="Abrufdatum"> abgerufen am 6.&nbsp;Oktober 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+1.1%3A+RJS%2C+Active+Record%2B%2B%2C+respond_to%2C+integration+tests%2C+and+500+other+things%21&amp;rft.description=Rails+1.1%3A+RJS%2C+Active+Record%2B%2B%2C+respond_to%2C+integration+tests%2C+and+500+other+things%21&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20100805084229%2Fhttp%3A%2F%2Fweblog.rubyonrails.org%2F2006%2F3%2F28%2Frails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things&amp;rft.source=https://weblog.rubyonrails.org/2006/3/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110612012212/http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations"><i>Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations.</i></a> Archiviert vom <span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fweblog.rubyonrails.org%2F2007%2F1%2F19%2Frails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations">Original</a></span> am <span style="white-space:nowrap;">12.&nbsp;Juni 2011</span><span>;</span><span class="Abrufdatum"> abgerufen am 6.&nbsp;Oktober 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+1.2%3A+REST+admiration%2C+HTTP+lovefest%2C+and+UTF-8+celebrations&amp;rft.description=Rails+1.2%3A+REST+admiration%2C+HTTP+lovefest%2C+and+UTF-8+celebrations&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20110612012212%2Fhttp%3A%2F%2Fweblog.rubyonrails.org%2F2007%2F1%2F19%2Frails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations&amp;rft.source=https://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2007/12/7/rails-2-0-it-s-done"><i>Rails 2.0: It's done!</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Oktober 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+2.0%3A+It%27s+done%21&amp;rft.description=Rails+2.0%3A+It%27s+done%21&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2007%2F12%2F7%2Frails-2-0-it-s-done&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><span class="cite">Jo Bager: <a rel="nofollow" class="external text" href="http://heise.de/-168388"><i>Web-Applikationsumgebung Ruby on Rails 2.0 ist fertig.</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Oktober 2012</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Web-Applikationsumgebung+Ruby+on+Rails+2.0+ist+fertig&amp;rft.description=Web-Applikationsumgebung+Ruby+on+Rails+2.0+ist+fertig&amp;rft.identifier=http%3A%2F%2Fheise.de%2F-168388&amp;rft.creator=Jo+Bager">&nbsp;</span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110612012247/http://weblog.rubyonrails.org/2008/6/1/rails-2-1-time-zones-dirty-caching-gem-dependencies-caching-etc"><i>Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc.</i></a> Archiviert vom <span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fweblog.rubyonrails.org%2F2008%2F6%2F1%2Frails-2-1-time-zones-dirty-caching-gem-dependencies-caching-etc">Original</a></span> am <span style="white-space:nowrap;">12.&nbsp;Juni 2011</span><span>;</span><span class="Abrufdatum"> abgerufen am 6.&nbsp;Oktober 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+2.1%3A+Time+zones%2C+dirty%2C+caching%2C+gem+dependencies%2C+caching%2C+etc&amp;rft.description=Rails+2.1%3A+Time+zones%2C+dirty%2C+caching%2C+gem+dependencies%2C+caching%2C+etc&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20110612012247%2Fhttp%3A%2F%2Fweblog.rubyonrails.org%2F2008%2F6%2F1%2Frails-2-1-time-zones-dirty-caching-gem-dependencies-caching-etc&amp;rft.source=https://weblog.rubyonrails.org/2008/6/1/rails-2-1-time-zones-dirty-caching-gem-dependencies-caching-etc&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done/"><i>Rails 3.0: It's ready.</i></a><span class="Abrufdatum"> Abgerufen am 12.&nbsp;April 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+3.0%3A+It%27s+ready&amp;rft.description=Rails+3.0%3A+It%27s+ready&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2010%2F8%2F29%2Frails-3-0-it-s-done%2F&amp;rft.language=Englisch">&nbsp;</span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text">Rails Weblog: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3"><i>Merb gets merged into Rails 3!</i></a><span class="Abrufdatum"> Abgerufen am 6.&nbsp;Oktober 2012</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Merb+gets+merged+into+Rails+3%21&amp;rft.description=Merb+gets+merged+into+Rails+3%21&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2008%2F12%2F23%2Fmerb-gets-merged-into-rails-3">&nbsp;</span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2011/8/31/rails-3-1-0-has-been-released"><i>Rails 3.1.0 has been released!</i></a> 31.&nbsp;August 2011,<span class="Abrufdatum"> abgerufen am 12.&nbsp;April 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+3.1.0+has+been+released%21&amp;rft.description=Rails+3.1.0+has+been+released%21&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2011%2F8%2F31%2Frails-3-1-0-has-been-released&amp;rft.date=2011-08-31&amp;rft.language=Englisch">&nbsp;</span></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text">Morsy und Otto 2012: Ruby on Rails 3.1, S. 28</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text">Riding Rails: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store/"><i>Rails 3.2.0: Faster dev mode &amp; routing, explain queries, tagged logger, store.</i></a> 20.&nbsp;Januar 2012,<span class="Abrufdatum"> abgerufen am 12.&nbsp;April 2012</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+3.2.0%3A+Faster+dev+mode+%26+routing%2C+explain+queries%2C+tagged+logger%2C+store&amp;rft.description=Rails+3.2.0%3A+Faster+dev+mode+%26+routing%2C+explain+queries%2C+tagged+logger%2C+store&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2012%2F1%2F20%2Frails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store%2F&amp;rft.date=2012-01-20&amp;rft.language=Englisch">&nbsp;</span></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/"><i>Riding Rails: Rails 4.0: Final version released!</i></a> 25.&nbsp;Juni 2013,<span class="Abrufdatum"> abgerufen am 25.&nbsp;Juli 2013</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Riding+Rails%3A+Rails+4.0%3A+Final+version+released%21&amp;rft.description=Riding+Rails%3A+Rails+4.0%3A+Final+version+released%21&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2013%2F6%2F25%2FRails-4-0-final%2F&amp;rft.date=2013-06-25&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2014/4/8/Rails-4-1/"><i>Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml.</i></a> 8.&nbsp;April 2014,<span class="Abrufdatum"> abgerufen am 5.&nbsp;August 2014</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+4.1.0%3A+Spring%2C+Variants%2C+Enums%2C+Mailer+previews%2C+secrets.yml&amp;rft.description=Rails+4.1.0%3A+Spring%2C+Variants%2C+Enums%2C+Mailer+previews%2C+secrets.yml&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2014%2F4%2F8%2FRails-4-1%2F&amp;rft.date=2014-04-08&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2014/12/19/Rails-4-2-final/"><i>Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys.</i></a> 19.&nbsp;Dezember 2014,<span class="Abrufdatum"> abgerufen am 21.&nbsp;Dezember 2014</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+4.2%3A+Active+Job%2C+Asynchronous+Mails%2C+Adequate+Record%2C+Web+Console%2C+Foreign+Keys&amp;rft.description=Rails+4.2%3A+Active+Job%2C+Asynchronous+Mails%2C+Adequate+Record%2C+Web+Console%2C+Foreign+Keys&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2014%2F12%2F19%2FRails-4-2-final%2F&amp;rft.date=2014-12-19&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://guides.rubyonrails.org/5_0_release_notes.html"><i>Ruby on Rails 5.0 Release Notes.</i></a><span class="Abrufdatum"> Abgerufen am 19.&nbsp;Juli 2016</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Ruby+on+Rails+5.0+Release+Notes&amp;rft.description=Ruby+on+Rails+5.0+Release+Notes&amp;rft.identifier=https%3A%2F%2Fguides.rubyonrails.org%2F5_0_release_notes.html&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://guides.rubyonrails.org/5_1_release_notes.html"><i>Ruby on Rails 5.1 Release Notes.</i></a><span class="Abrufdatum"> Abgerufen am 31.&nbsp;Januar 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Ruby+on+Rails+5.1+Release+Notes&amp;rft.description=Ruby+on+Rails+5.1+Release+Notes&amp;rft.identifier=https%3A%2F%2Fguides.rubyonrails.org%2F5_1_release_notes.html&amp;rft.language=englisch">&nbsp;</span></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2018/4/9/Rails-5-2-0-final/"><i>Rails 5.2.0 FINAL.</i></a> 9.&nbsp;April 2018,<span class="Abrufdatum"> abgerufen am 3.&nbsp;August 2018</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+5.2.0+FINAL&amp;rft.description=Rails+5.2.0+FINAL&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2018%2F4%2F9%2FRails-5-2-0-final%2F&amp;rft.date=2018-04-09&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://weblog.rubyonrails.org/2019/8/15/Rails-6-0-final-release/"><i>Rails 6.0 Final Release.</i></a> 15.&nbsp;August 2019,<span class="Abrufdatum"> abgerufen am 21.&nbsp;März 2020</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Rails+6.0+Final+Release&amp;rft.description=Rails+6.0+Final+Release&amp;rft.identifier=https%3A%2F%2Fweblog.rubyonrails.org%2F2019%2F8%2F15%2FRails-6-0-final-release%2F&amp;rft.date=2019-08-15&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a></span> <span class="reference-text">Release Notes: <span class="cite"><a rel="nofollow" class="external text" href="https://guides.rubyonrails.org/6_1_release_notes.html"><i>Ruby on Rails 6.1 Release Notes.</i></a> 9.&nbsp;Dezember 2020,<span class="Abrufdatum"> abgerufen am 29.&nbsp;Mai 2021</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ARuby+on+Rails&amp;rft.title=Ruby+on+Rails+6.1+Release+Notes&amp;rft.description=Ruby+on+Rails+6.1+Release+Notes&amp;rft.identifier=https%3A%2F%2Fguides.rubyonrails.org%2F6_1_release_notes.html&amp;rft.date=2020-12-09&amp;rft.language=en">&nbsp;</span></span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten&nbsp;(Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/7516633-1">7516633-1</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-09-26" href="https://de.wikipedia.org/wiki/?title=Ruby_on_Rails&amp;oldid=248925502">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>